#include <Windows.h>
#include <vector>
#include <string>

enum editing_options{
	UP=0,
	LEFT,
	MATCH,
	SWITCH
};

typedef std::vector<std::vector<editing_options>> decision_array;

class EditDistanceCalculator
{
public:
    EditDistanceCalculator(const std::vector<UINT32>& first_path,const std::vector<UINT32>& second_path);
	decision_array get_decision_array(); 
private:
	void print_costs(const std::vector<std::vector<UINT32>>& costs) const;
	void print_decisions() const;
	std::string decision_to_string(editing_options e) const;
private:
	decision_array _my_decisions;
	const static UINT32 COST_OF_REMOVING_NODE=1;
	const static UINT32 COST_OF_SUBSTITUTING_NODE=1;
};